var mongoose = require('mongoose');
var _ = require('lodash');
var geolib = require('geolib');
var LocationModel = require('./models/location.js');

mongoose.connect('mongodb://localhost/mongo_geo');
//
// LocationModel.remove({}, function() {
//   LocationModel.create([{
//     name: '昊龙花园南区',
//     loc: [113.365829, 22.920961]
//   }, {
//     name: '君华御府',
//     loc: [113.362757, 22.921644]
//   }, {
//     name: '奥园广场二期',
//     loc: [113.364311, 22.930398]
//   }, {
//     name: '朗陶居',
//     loc: [113.371533, 22.924506]
//   }, {
//     name: '华侨城',
//     loc: [113.360767, 22.939122]
//   }, {
//     name: '星海公园',
//     loc: [113.377161, 22.94905]
//   }, {
//     name: '德宝花园',
//     loc: [113.384581, 22.926485]
//   }, {
//     name: '中熙海伦堡',
//     loc: [113.369849,22.93176]
//   }, {
//     name: '西丽广场',
//     loc: [113.360704,22.942943]
//   }, {
//     name: '番禺中心医院',
//     loc: [113.382012,22.918613]
//   }, {
//     name: '何贤纪念医院',
//     loc: [113.378653,22.94048]
//   }, {
//     name: '番禺中医院',
//     loc: [113.376029,22.943954]
//   }], function(err, results) {
//     console.log(results);
//     process.exit();
//   });
// })


var center = [113.365659, 22.921178];

// var point = { type : "Point", coordinates : center };
// LocationModel.geoNear(point, { maxDistance : 5, spherical : true }, function(err, results, stats) {
//    console.log(err);
// });

function convertKm2Distance(km) {
  return 0.00015764 * km;
}

LocationModel.find().where('loc').near({ center: center, maxDistance: convertKm2Distance(3), spherical: true }).exec(function (err, results) {
  _.each(results, function (result) {
    var distance =geolib.getDistance({
      longitude: center[0],
      latitude: center[1]
    }, {
      longitude: result.loc[0],
      latitude: result.loc[1]
    });
    // console.log(result.name + ': ' + geolib.convertUnit('km',distance, 4) + 'km');

    console.log(result.name + ': ' + distance + 'm');
  })
  process.exit();
});
